Typical expert systems include a knowledge base, a working memory and a control level, or inference engine. The knowledge base contains knowledge represented in the form of either production rules or procedures or a combination of both. The working memory, which is also termed a "blackboard", contains a set of facts, which may be established at the beginning of operation of the system, during prior processing by the system, or by an operator in response to, for example, inquiries from the expert system during processing. The control level controls the operation of the system in a series of execution cycles during which it processes the rules or procedures in connection with the contents of the working memory.
Production rules generally comprise two levels, namely, a condition level, generally identified as the "left-hand side" of the rule, and an action or consequent list, which is generally identified as the "right-hand side" of the rule. The condition level identifies one or more conditions which may be satisfied by the facts in the blackboard. The action list specifies one or more actions in connection with the system, such as adding, deleting or modifying a fact on the blackboard, transmitting a message to the operator, or halting the execution cycle. If the conditions comprising a rule's condition level are satisfied, the rule is said to "fire", in which case the control level executes the operations specified in the action list.
Procedures are essentially computer programs that define a series of steps or operations to be performed during an execution cycle. The procedure may specify, for example, one or more actions to be taken in connection with the system such as storing facts in the blackboard, transmitting a message to the operator or halting the execution cycle.
The aforementioned '840 application describes an expert system that assists in the redesign of complex systems, such as electrical circuits. In using the expert system, an operator supplies an initial design for the complex system, and a set of operational constraints. The expert system simulates the design and determines whether the operation of the design, as indicated by the simulation, conforms to the operational constraints. If not, a redesign element assists in the redesign of the complex system to more closely conform to the operational constraints. The expert system then simulates the redesigned complex system. This procedure may be repeated several times until the operation of the complex system conforms to the operational constraints specified by the operator.
To accomplish the redesign, the expert system in the aforementioned '840 application includes redesign operators, each of which operates to modify one of various aspects of the design, based on knowledge, in the form of rules, organized in a multi-level hierarchy. In response to the representation of the design, as provided by the operator or in response to a redesign, design constraints and the cause of a discrepancy between the operational constraints and the simulated operation of the design, a solution selection knowledge module selects one of many redesign solutions which are capable of eliminating the discrepancies by modifying the design. Each redesign solution, in turn, includes the various redesign operators, and redesign operator control knowledge indicating the order in which the redesign operators are to be applied to accomplish the redesign
The solution selection knowledge and the redesign operator control knowledge in the expert system are both in the form of rules. The rules in the solution selection knowledge module fire in response to the information concerning the various solutions which are capable of eliminating the discrepancies, the design constraints and the causes of the discrepancies between the simulated operation and the desired operation of the complex system. Firing of a rule in the solution selection knowledge module initiates operation of a redesign solution. The rules comprising the redesign operator control knowledge of a redesign solution, on the other hand, determines the order in which the redesign operators are to be applied.
The redesign operators, which are operators that indicate the various primitive redesign operations that may be provided in the system, form part of the "knowledge" in the system. The redesign operator control knowledge provides a level of control knowledge as to the sequencing of application of the redesign operators to achieve a particular redesign goal. The solution selection knowledge provides a level of "meta-knowledge", that is, knowledge about the control knowledge provided by the redesign operator control knowledge in the expert system.